package com.ruoyi.reportReview.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.*;

import java.util.Date;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 填报主表业务对象 industrial_report_info
 *
 * @author yangzhen
 * @date 2025-11-23
 */

@Data
@EqualsAndHashCode(callSuper = true)
@Schema(name = "IndustrialReportInfoBo", description = "填报主表业务对象")
public class IndustrialReportInfoBo extends BaseEntity {

    /**
     * 主键id
     */
    @Schema(description = "主键id")
    @NotBlank(message = "主键id不能为空", groups = {EditGroup.class})
    private String id;

    /**
     * 填报任务id
     */
    @Schema(description = "填报任务id")
    @NotBlank(message = "填报任务id不能为空", groups = {AddGroup.class, EditGroup.class})
    private String taskId;

    /**
     * 填报人员
     */
    @Schema(description = "填报人员")
    @NotBlank(message = "填报人员不能为空", groups = {AddGroup.class, EditGroup.class})
    private String reportUser;

    /**
     * 填报企业分类
     */
    @Schema(description = "填报企业分类")
    @NotBlank(message = "填报企业分类不能为空", groups = {AddGroup.class, EditGroup.class})
    private String reportUserPhone;

    /**
     * 备注
     */
    @Schema(description = "备注")
    @NotBlank(message = "备注不能为空", groups = {AddGroup.class, EditGroup.class})
    private String remark;

    /**
     * 数据状态
     */
    @Schema(description = "数据状态")
    @NotNull(message = "数据状态不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long dataStatus;

    /**
     * 收集日期
     */
    @Schema(description = "收集日期")
    @NotNull(message = "收集日期不能为空", groups = {AddGroup.class, EditGroup.class})
    private Date collectDate;

    /**
     * 任务名称
     */
    @Schema(description = "任务名称")
    @NotBlank(message = "任务名称不能为空", groups = {AddGroup.class, EditGroup.class})
    private String taskName;

    /**
     * 任务标题名称
     */
    @Schema(description = "任务标题名称")
    private String titleName;
    /**
     * 填报说明
     */
    @Schema(description = "填报说明")
    private String helperText;
    /**
     * 到期时间
     */
    @Schema(description = "到期时间")
    private String deadline;
    /**
     * 填报周期
     */
    @Schema(description = "填报周期")
    private String reportCycle;
    /**
     * 填报模板
     */
    @Schema(description = "填报模板")
    private String reportTemplate;
    /**
     * 审核时间
     */
    @Schema(description = "审核时间")
    private Date reviewTime;
    /**
     * 审核人
     */
    @Schema(description = "审核人")
    private String reviewBy;
    /**
     * 审核说明
     */
    @Schema(description = "审核说明")
    private String reviewDesc;
    /**
     * 填报周期 年/月
     */
    @Schema(description = "填报收集日期")
    private Date reportCollectDate;
    @Schema(description = "填报开始时间")
    private Date beginCreateTime;
    @Schema(description = "填报结束时间")
    private Date endCreateTime;
}
